const express = require('express');
const router = express.Router();
// 处理 mysql 数据库里面的的表
const db = require('../db/index')
// 用这个包来生成 Token 字符串
const jwt = require('jsonwebtoken')
// 导入配置文件
const config = require('../config')

router.post('/refreshToken', async (req, res) => {
    let connection; // 声明 connection 变量
	try {
		// 等待从连接池中获取一个连接
		connection = await db.getConnection();
		// 接收表单数据
		const {
			openid
		} = req.body;

		// 检查用户是否已存在
		const checkSqlByOpenid =  `SELECT * FROM cc_user WHERE openid = ?`
		let [rows] = await connection.execute(checkSqlByOpenid, [openid]);

		// 处理登录
		const expiresIn = '7d'; //单位秒  可以用1h 1d  2days 
		// 生成 Token 字符串
		const tokenStr = jwt.sign(rows[0], config.jwtSecretKey, {
			expiresIn: expiresIn
		});
		//过期具体时间
		const expiresAt = new Date(Date.now() + 24 * 7 * 60 * 60 * 1000); //7d = 24 * 7 * 60 * 60 * 1000

		res.json({
			status: 200,
			message: '刷新成功',
			token: `Bearer ${tokenStr}`,
			expiresAt: expiresAt
		});


	} catch (err) {
		console.error('Database connection error:', err);
		res.status(500).json({
			status: 500,
			message: '数据库连接错误'
		});
	} finally {
		// 释放连接
		if (connection) {
			connection.release();
		}
	}
})

module.exports = router